关于python 3.x:Python3:long int太大而无法转换为float

您所在的位置:网站首页 conversion from int to float 关于python 3.x:Python3:long int太大而无法转换为float

关于python 3.x:Python3:long int太大而无法转换为float

#关于python 3.x:Python3:long int太大而无法转换为float | 来源: 网络整理| 查看: 265

我一直在这里检查一些与我遇到的相同问题有关的主题,但它们似乎无济于事。

我的问题是,当我尝试执行以下代码时,出现标题中的错误。我该如何解决?

1234567 d=2  while(n != 1):                 n = 2         d = (math.sqrt(2 + d))         n= (n/d)         f = (f * (n))  print (f) 相关讨论 OverflowError的可能重复项:long int太大,无法转换为python中的float 如果执行该代码,则会得到" NameError:名称n未定义"。您实际上在执行什么代码? 哎呀。我错过了d = 2以上的n = 2的值。

这是因为math.sqrt(由于使用C sqrt函数)适用于大小不受限制的浮点数。 Python无法将长整数转换为浮点数,因为它很大。 请参见有关对大数平方根求平方的方法的问题。

更好的是,您可以使用十进制模块,这是一个以10为底的无限大小数字类型。使用decimal.Decimal(number).sqrt()查找数字的平方根。

相关讨论 但是,如何精确地确定我的数字为2 d.p? @萨博我不明白。 d.p.代表?小数位?默认情况下,十进制具有38个小数位,因此sqrt可以精确到38个小数位。 ,小数点后一位。可以说math.srqt(2)给出了一个很长的数字(不合理),因此我得到了错误。那么如何使用十进制模块使其仅计算2个小数位,从而避免出现错误? 我的答案有使用十进制的正确代码;无需使用该替代方法。 我虽然有错误。 [] @Sab似乎我对十进制有误;请使用此问题中的方法。 (链接也在答案中)。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3